From 3964940c61733c9df66afb1bc986389cb55955b7 Mon Sep 17 00:00:00 2001 From: "djm@kirby.fc.hp.com" Date: Fri, 2 Sep 2005 11:59:08 -0600 Subject: [PATCH] Bug fixes from Kevin (x2) and Anthony Missing prototypes (Kevin) Bad n_rid_blocks computation (Anthony) Bad pte when single-entry dtlb lookup is successful (Kevin) --- xen/arch/ia64/xen/regionreg.c | 2 +- xen/arch/ia64/xen/vcpu.c | 3 ++- xen/include/asm-ia64/mm.h | 6 ++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/xen/arch/ia64/xen/regionreg.c b/xen/arch/ia64/xen/regionreg.c index 974f380efb..c845310c5f 100644 --- a/xen/arch/ia64/xen/regionreg.c +++ b/xen/arch/ia64/xen/regionreg.c @@ -116,7 +116,7 @@ int allocate_rid_range(struct domain *d, unsigned long ridbits) ridbits = IA64_MIN_IMPL_RID_BITS; // convert to rid_blocks and find one - n_rid_blocks = ridbits - IA64_MIN_IMPL_RID_BITS + 1; + n_rid_blocks = 1UL << (ridbits - IA64_MIN_IMPL_RID_BITS); // skip over block 0, reserved for "meta-physical mappings (and Xen)" for (i = n_rid_blocks; i < MAX_RID_BLOCKS; i += n_rid_blocks) { diff --git a/xen/arch/ia64/xen/vcpu.c b/xen/arch/ia64/xen/vcpu.c index 55af8a49e4..3f1848fab5 100644 --- a/xen/arch/ia64/xen/vcpu.c +++ b/xen/arch/ia64/xen/vcpu.c @@ -1315,7 +1315,8 @@ IA64FAULT vcpu_translate(VCPU *vcpu, UINT64 address, BOOLEAN is_data, UINT64 *pt /* check 1-entry TLB */ if ((trp = match_dtlb(vcpu,address))) { dtlb_translate_count++; - *pteval = trp->page_flags; + //*pteval = trp->page_flags; + *pteval = trp->arch.dtlb_pte; *itir = trp->itir; return IA64_NO_FAULT; } diff --git a/xen/include/asm-ia64/mm.h b/xen/include/asm-ia64/mm.h index 7ca3124926..36e8a699ea 100644 --- a/xen/include/asm-ia64/mm.h +++ b/xen/include/asm-ia64/mm.h @@ -212,6 +212,12 @@ void memguard_unguard_range(void *p, unsigned long l); #define memguard_unguard_range(_p,_l) ((void)0) #endif +// prototype of misc memory stuff +unsigned long __get_free_pages(unsigned int mask, unsigned int order); +void __free_pages(struct page *page, unsigned int order); +void *pgtable_quicklist_alloc(void); +void pgtable_quicklist_free(void *pgtable_entry); + // FOLLOWING FROM linux-2.6.7/include/mm.h /* -- 2.30.2